package org.summerframework.component.security.permissions.service.dto;

import org.summerframework.core.base.dto.BaseDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.util.List;

/**
 * user_permissions
 * @author
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserPermissionsDTO extends BaseDTO {
    /**
     * 权限名称
     */
    @ApiModelProperty(value = "权限名称", required = true)
    private String name;

    /**
     * 权限编码
     */
    @ApiModelProperty(value = "权限编码", required = true)
    private String code;

    /**
     * 权限类型
     */
    @ApiModelProperty(value = "权限类型")
    private Integer type;

    /**
     * 权限地址
     */
    @ApiModelProperty(value = "权限地址", required = true)
    private String url;

    /**
     * 上级id
     */
    @ApiModelProperty(value = "上级id")
    private Long parentId;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序", required = true)
    private Integer sortIndex;

    /**
     * 图标
     */
    @ApiModelProperty(value = "图标")
    private String icon;

    /**
     * 状态  1: 正常  0: 禁用
     */
    @ApiModelProperty(value = "状态  1: 正常  0: 禁用")
    private Integer status;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    private String desc;

    /**
     * 参数
     */
    @ApiModelProperty(value = "参数")
    private String params;

    /**
     * 是否系统 1:是 0:否
     */
    @ApiModelProperty(value = "是否系统 1:是 0:否")
    private Integer isSystem;

    /**
     * 是否删除
     */
    @ApiModelProperty(value = "是否删除")
    private Integer delFlag;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", required = true)
    private Long createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人", required = true)
    private Long updateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", required = true)
    private LocalDateTime updateTime;

    private String requestMappingInfo;

    @ApiModelProperty(value = "上级名称", required = true)
    private String parentName;

    private Boolean leaf = false;

    private List<UserPermissionsDTO> child;
}
